package net.xxcl.exam.mapper;

import java.util.List;

import net.xxcl.exam.model.StuForDelayTime;
import net.xxcl.exam.model.StuForMark;
import net.xxcl.exam.pojo.Criteria;
import net.xxcl.exam.pojo.Score;
import net.xxcl.exam.pojo.ScoreKey;
import org.apache.ibatis.annotations.Param;

public interface ScoreMapper {
    /**
     * 根据条件查询记录总数
     */
    int countByExample(Criteria example);

    /**
     * 根据条件删除记录
     */
    int deleteByExample(Criteria example);

    /**
     * 根据主键删除记录
     */
    int deleteByPrimaryKey(ScoreKey key);

    /**
     * 保存记录,不管记录里面的属性是否为空
     */
    int insert(Score record);

    /**
     * 保存属性不为空的记录
     */
    int insertSelective(Score record);

    /**
     * 根据条件查询记录集
     */
    List<Score> selectByExample(Criteria example);

    /**
     * 根据主键查询记录
     */
    Score selectByPrimaryKey(ScoreKey key);

    /**
     * 根据条件更新属性不为空的记录
     */
    int updateByExampleSelective(@Param("record") Score record, @Param("example") Criteria example);

    /**
     * 根据条件更新记录
     */
    int updateByExample(@Param("record") Score record, @Param("example") Criteria example);

    /**
     * 根据主键更新属性不为空的记录
     */
    int updateByPrimaryKeySelective(Score record);

    /**
     * 根据主键更新记录
     */
    int updateByPrimaryKey(Score record);
    
    List<StuForDelayTime> getForDelayTime(Criteria criteria);
    
    int countForDelayTime(Criteria criteria);
    
    List<Score> selectByPaperId(Integer paperid);

    List<StuForMark> selectForMark(Criteria criteria);

    int countForMark(Criteria criteria);
}